Fast method for capacity estimation of systems

ABSTRACT

A method reduces the number of computer operations required to analyze many performance measurement issues of wireless systems. A multi-dimensional birth-death model is configured to address a performance analysis issue. The method consists of selecting a first group of states from the multi-dimensional birth-death model and determining a relationship between the non-selected states and this first group of states. Thereafter, the probabilities of being in the first group of states are calculated. Once calculated, the probabilities of being in the remaining states can be calculated using the relationship between the non-selected states and the first group of states and the calculated probabilities of the first group of states. The determined probabilities are used to analyze the performance issue.

FIELD OF THE INVENTION

The present invention relates generally to wireless communication systems and, more particularly, to a system and method for modeling and analyzing complex issues in a wireless communication system.

BACKGROUND OF THE INVENTION

The cellular industry has made phenomenal strides in commercial operations both in the United States and the rest of the world. Growth in major metropolitan areas has far exceeded expectations and is rapidly outstripping system capacity. If this trend continues, the effects of this industry's growth will soon reach even the smallest markets. Innovative solutions are required to meet these increasing capacity needs as well as to maintain high quality service and avoid rising prices.

In addition to the challenges posed by the need for greater system capacity, the designers of future wireless communication systems have their own unique set of challenges. For example, in order to engineer efficient wireless systems, designers need to be able to quickly and accurately estimate the capacity of a wireless communication system and analyze its performance.

Conventional approaches to capacity estimation and performance analysis involve the use of analytical formulae, computer simulations, or classical numerical methods. The use of analytical formulae, however, generally necessitates unrealistic assumptions (e.g., ignoring redialing or abandoning behavior of wireless customers when estimating the capacity of a wireless system). Similarly, the use of computer simulations typically requires a substantial setup time and achieves a less accurate estimate. In addition, the use of classical numerical methods generally requires an amount of computation time that makes use of such methods impractical.

A class of analytical models exists, called “multi-dimensional birth-death models,” that can be easily used to accurately model many capacity estimation and performance analysis issues. Unfortunately, the classical numerical approach to solving these models is well known as an excessively slow and frequently impractical approach for large systems.

FIG. 1 illustrates a general two-dimensional birth-death model 100 that can be used to model many capacity estimation and performance analysis issues. The two-dimensional birth-death model 100 includes several states 110. Each state represents how something is: its configuration, attributes, condition, or information content. For example, a state may represent a specific number of voice calls and a specific number of data calls occupying a channel in a wireless system at a given instance.

As illustrated, a system may transition from a first state to any of its nearest neighboring states. For example, a system may transition from state 110 a to its neighboring state to the west, its neighboring state to the south, its neighboring state to the east, its neighboring state to the southwest, or its neighboring state to the southeast.

A two-dimensional birth-death model, such as model 100, can be used to analyze a variety of telecommunications issues, as well as other types of issues. For example, three areas of importance to designers of wireless systems that can be represented by two-dimensional birth-death models include analyzing wireless traffic in a system while taking into account the effects of redial traffic, analyzing wireless traffic in a system while taking into account the effects of handoff traffic, and analyzing the use of different priority schemes in a wireless system having both voice and data traffic.

Conventional approaches to estimating the capacity of a cell site, such as the use of analytical formulae, typically consider only the regular traffic at the cell site. Such approaches do not, however, take into account the effects of customers redialing in those situations when an original call to the cell site is blocked. In order to obtain a more accurate estimate of the capacity of the cell site, both regular traffic and redial traffic should be considered. A two-dimensional birth-death model may be used to estimate the capacity of a system having both types of traffic. One dimension of the model (e.g., the horizontal axis of the model 100 in FIG. 1) may be assigned to the number of channels in use in the cell site while the other dimension (e.g., the vertical axis of model 100) may be assigned to the number of customers who have been blocked, but may redial. By taking redial traffic into account when estimating a cell site's capacity, a more accurate estimation may be obtained.

A two-dimensional birth-death model may also be used to analyze wireless traffic in a system while taking into account regular and handoff traffic. Typically, system designers treat both types of traffic the same in order to simplify system analyses. In order to increase customer satisfaction, however, regular traffic and handoff traffic should be treated differently. For example, from a customer satisfaction perspective, it is often better to block a customer attempting a new telephone call than to drop a customer in the middle of a telephone call. When analyzing such a system using a two-dimensional birth-death model, one dimension may be assigned to the number of new calls in the system and the other dimension to the number of hand-in calls. Such a model would allow system designers to analyze different types of reservation (or priority assignment) techniques.

Similarly, if a channel in a wireless system handles both voice and data traffic, it may be desirable to assign different levels of priority to the traffic types. A two-dimensional birth-death model could represent such a system. System designers could analyze the effects of the different levels of priority by assigning one dimension of the two-dimensional birth-death model to the number of voice calls in the system and the other dimension to the number of data calls in the system. As a result, a variety of priority schemes can be easily analyzed.

To analyze two-dimensional birth-death models, the steady state ergodic probability of a column vector being in the set of states ((j, 0), . . . , (j, n)) is defined as e _(j)=(e_(j0), . . . , e_(jn))^(T), where e_(j0) is the probability of being in state (j, 0) and e_(jn) is the probability of being in state (j, n), and the infinitesimal generator of the probability flow from (j, i) to (j−1, k) to be [ν_(j) ⁻]_(i,k), from (j, i) to (j+1, k) to be [ν_(j) ⁺]_(i,k), from (j, i) (j, k) to be [ν_(j) ⁰]_(i,k) if i≠k and the total probability flow out of (j, i) to be −[ν_(j) ⁰]_(i,i), i.e., −[ν_(j) ⁰]_(i,i)=Σ_(k)([ν_(j) ⁺]_(i,k)+χ_((i≠k))[ν_(j) ⁰]_(i,k)+[ν_(j) ⁻]_(i,k)) so

(ν_(j) ⁺+ν_(j) ⁰+ν_(j) ⁻⁾ 1=0  (1)

where ν_(j) ⁰, ν_(j) ⁰, and ν_(j) ⁻, are matrices, and 1 and 0 are vectors consisting of only 1's and 0's, respectively.

Two-dimensional birth-death equations have a steady state solution satisfying

χ_({j≠0}) e _(j−1) ^(T)ν_(j−1) ⁺+e _(j) ^(t)ν_(j) ⁰+χ_({j≠n}) e _(j+1) ^(T)ν_(j+1) ⁻=0 j=0, . . . , m,  (2)

and $\begin{matrix} {{\sum\limits_{j = 0}^{m}\quad {{\underset{\_}{e}}_{j}^{T}\underset{\_}{1}}} = 1.} & (3) \end{matrix}$

In general, when the condition of the subscript associated with χ is true, the value of χ equals 1 and equals 0 otherwise. In equation 2, therefore, _(X{j≠0}) equals 1 when j≠0 and equals 0 when j=0.

To simplify future notation, assume

ν₀ ⁻=ν_(m) ⁺=0.  (4)

where ν₀ ⁻ and ν_(m) ⁺ are (m+1×m+1) matrices and 0 is a matrix consisting only of 0's. Note that equations (2) and (3) are the solution to equations

e ^(T)ν=0

and

e ^(T) 1=1

where e ^(T)=(e ₀ ^(T), e ₁ ^(T), . . . ,e _(n) ^(T)) is a 1×(n+1)(m+1) vector and $v = \begin{pmatrix} v_{0}^{0} & v_{0}^{+} & 0 & 0 & \cdots & 0 & 0 \\ v_{1}^{-} & v_{1}^{0} & v_{1}^{+} & 0 & \cdots & 0 & 0 \\ 0 & v_{2}^{-} & v_{2}^{0} & v_{2}^{+} & \cdots & 0 & 0 \\ 0 & 0 & v_{3}^{-} & v_{3}^{0} & \cdots & 0 & 0 \\ 0 & 0 & 0 & v_{4}^{-} & \cdots & 0 & 0 \\ 0 & 0 & 0 & 0 & \cdots & v_{m - 2}^{+} & 0 \\ \cdots & \cdots & \cdots & \cdots & \cdots & v_{m - 1}^{0} & v_{m - 1}^{+} \\ 0 & 0 & 0 & 0 & \cdots & v_{m}^{-} & v_{m}^{0} \end{pmatrix}$

is an (n+1)(m+1)×(n+1)(m+1) block tridiagonal matrix where each block is itself a (n+1)×(n+1) tridiagonal matrix. This special structure is referred to hereinafter as a “recursively tridiagonal” structure. A recursively tridiagonal matrix, therefore, is a matrix that is block tridiagonal, and each block is block tridiagonal, and each of these blocks is block tridiagonal, etc.

As illustrated, the matrix ν consists of three diagonal lines of blocks. For example, blocks ν₀ ⁰, ν₁ ⁰, ν₂ ⁰, and ν₃ ⁰ make up the main diagonal of matrix ν. The other diagonals that exist just above and just below the main diagonal consist of blocks ν₀ ⁺, ν₁ ⁺, and ν₂ ⁺ and blocks ν₁ ⁻, ν₂ ⁻, and ν₃ ⁻, respectively. Each of the blocks of matrix ν, as set forth above, has a tridiagonal structure. It is apparent from the structure of matrix ν that a large number of zeros exist and that they exist in regular locations (i.e., to the northeast and southwest of the three diagonal lines of blocks).

Linear equations e ^(T)ν=0 and e ^(T) 1=1 may be solved using a variety of numerical approaches, the most common being the use of Gaussian elimination. Gaussian elimination requires on the order of (m³×n³) multiplication operations for an (mn×mn) matrix. Therefore, for example, for a matrix where the values of m and n are each 100, 1×10¹² multiplication operations would be necessary using Gaussian elimination. Consequently, as the number of rows and/or columns of the matrix increases, the number of multiplication operations increases dramatically. As such, Gaussian elimination proves to be an extremely slow solution to the performance analysis and capacity estimation of large telecommunications systems.

As an alternative to the use of Gaussian elimination, a block Gaussian algorithm may be used to solve two-dimensional birth-death equations. The block Gaussian algorithm exploits the fact that the ν matrix is block tridiagonal (i.e., it exploits the fact that there are a large number of zeros and that they are in regular locations in the matrix), but does not exploit the fact that each of the blocks in the matrix ν is tridiagonal. The number of multiplication operations needed to solve a two-dimensional birth-death equation using the block Gaussian algorithm is on the order of (m×n³). Consequently, use of a block Gaussian algorithm greatly reduces the number of multiplication operations needed in comparison to the Gaussian elimination when a large value of m exists. However, this algorithm is still an extremely slow solution to the performance analysis and capacity estimation of large telecommunications systems.

Therefore, there exists a need for a system and method that quickly and accurately solves multi-dimensional birth-death equations.

SUMMARY OF THE INVENTION

Systems and methods consistent with the present invention address this need by providing a process that reduces the number of multiplication operations needed for solving multi-dimensional birth-death equations.

In accordance with the purpose of the invention as embodied and broadly described herein, a method consists of selecting a first group of states from a multi-dimensional birth-death model and determining a relationship between the non-selected states and this first group of states. Thereafter, the method calculates the probabilities of being in the first group of states. Then, the method calculates the probabilities of being in the non-selected states using the relationship between the non-selected states and the first group of states and the calculated probabilities of the first group of states. The method solves the multi-dimensional birth-death model using the calculated probabilities of the first group of states and the non-selected states.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate an embodiment of the invention and, together with the description, explain the invention. In the drawings,

FIG. 1 illustrates a general two-dimensional birth-death model that can be used to model a capacity and performance analysis factor;

FIG. 2 illustrates an exemplary wireless communication network to which a process that solves multi-dimensional birth-death equations consistent with the present invention may be applied in order to address associated performance issues;

FIG. 3 illustrates an exemplary system, consistent with the present invention, that allows for modeling and analysis of performance issues related to a wireless network;

FIG. 4 illustrates an exemplary two-dimensional set of states consistent with the present invention;

FIG. 5 illustrates a general overview of an exemplary process that solves two-dimensional birth-death equations consistent with the present invention;

FIGS. 6A and 6B illustrate an exemplary process consistent with the present invention that solves two-dimensional birth-death equations; and

FIGS. 7A and 7B illustrate an exemplary process consistent with the present invention that solves multi-dimensional birth-death equations.

DETAILED DESCRIPTION

The following detailed description of the invention refers to the accompanying drawings. The same reference numbers in different drawings identify the same or similar elements. Also, the following detailed description does not limit the invention. Instead, the scope of the invention is defined by the appended claims.

Systems and methods consistent with the present invention provide a mechanism that reduces the number of computer operations needed to analyze many performance analysis measures of systems, such as wireless communication systems. A multi-dimensional birth-death model is constructed to address a performance analysis issue. By selecting a first group of states from the multi-dimensional birth-death model and determining a relationship between the non-selected states and this first group of states, determination of the probabilities of the states of the multi-dimensional birth-death model is greatly simplified.

A. EXEMPLARY NETWORK

FIG. 2 illustrates an exemplary wireless communication network to which a process that solves multi-dimensional birth-death equations consistent with the present invention may be applied in order to address associated performance issues. In FIG. 2, network 200 includes several contiguous wireless coverage areas, or cells, C1-C7. While the network shows only seven cells, the actual number of cells may be much larger or smaller in practice.

Each of the cells C1-C7 includes a base station 220, having three directional antennas 230-232, and may, at any given time, include one or more conventional wireless stations 240. The base station 220 is a conventional base station that receives information from and transfers information to the wireless stations 240. Each wireless station 240 communicates with the base station 220 in a well known manner.

B. EXEMPLARY SYSTEM CONFIGURATION

FIG. 3 illustrates an exemplary system 300, consistent with the present invention, that allows for modeling and analysis of performance issues related to a wireless network, such as network 200. The exemplary system 300 may be included in the wireless communication network 200 (e.g., in base station 220) or may be separate therefrom.

In FIG. 3, the exemplary system 300 includes a processor 302, main memory 304, read only memory (ROM) 306, storage device 308, bus 310, display 312, keyboard 314, cursor control 316, and communication interface 318.

The processor 302 may be any type of conventional processing device that interprets and executes instructions. Main memory 304 may be a random access memory (RAM) or a similar dynamic storage device. Main memory 304 stores information and instructions to be executed by processor 302. Main memory 304 may also store temporary variables or other intermediate information used during execution of instructions by processor 302. ROM 306 stores static information and instructions for processor 302. ROM 306 may be replaced with some other type of static storage device. The data storage device 308 may include any type of magnetic or optical disk and its corresponding disk drive. Data storage device 308 stores information and instructions for use by processor 302. Bus 310 includes a set of hardware lines (conductors) that allows for data transfer among the components of the system 300.

The display device 312 may be a cathode ray tube (CRT), or the like, for displaying information to an operator. The keyboard 314 and cursor control 316 allow the operator to interact with the system 300. The cursor control 316 may be, for example, a mouse.

Communication interface 318 enables the system to communicate with other devices/systems via any communications medium. For example, communication interface 318 may be a modem or an Ethernet interface to a LAN. Alternatively, communication interface 318 may be any other interface that enables communication between the system 300 and other devices or systems.

As will be described in detail below, multi-dimensional birth-death equations may be used to quickly and accurately analyze many telecommunications issues. A technique consistent with the present invention drastically reduces the number of multiplication operations necessary for solving multi-dimensional birth-death equations. The system 300 performs the functions necessary to analyze a performance issue associated with a wireless network in response to processor 302 executing sequences of instructions contained in, for example, memory 304. Such instructions may be read into memory 304 from another computer-readable medium, such as a data storage device 308, or from another device via communication interface 318. Execution of the sequences of instructions contained in memory 304 causes processor 302 to perform a method that will be described hereafter. Alternatively, hard-wired circuitry may be used in place of or in combination with software instructions to implement the present invention. Thus, the present invention is not limited to any specific combination of hardware circuitry and software.

C. EXEMPLARY PROCESS FOR SOLVING BIRTH-DEATH EQUATIONS

An exemplary process for solving two-dimensional birth-death equations consistent with the present invention exploits the special structure (i.e., the recursively tridiagonal structure) of the two-dimensional birth-death model. As such, the number of multiplication operations needed to solve these birth-death equations can be drastically reduced as compared to conventional techniques.

1. General Overview

FIG. 4 illustrates an exemplary two-dimensional set of states 400 consistent with the present invention that may be used to analyze a variety of telecommunications issues. For example, a telecommunications system designer could use the set of states 400 to analyze priority schemes in a system having voice and data traffic. The set of states 400 may include 36 states 410 and 420 formed in 6 rows and 6 columns. The shaded states 410 are referred to as “boundary” states and the non-shaded states 420 are referred to as “interior” states.

FIG. 5 illustrates a general overview of an exemplary process that solves two-dimensional birth-death equations consistent with the present invention. The exemplary process begins by carefully selecting a group of states (e.g., states 410) from the two-dimensional set of states 400 as boundary states (step 510). The boundary states 410 are selected so as to exploit the tridiagonal structure of a two-dimensional birth-death equation. Other techniques for selecting the boundary states 410 may alternatively be used. The states that were not selected as boundary states are identified as interior states 420.

After selecting boundary states 410 and interior states 420, the process computes a relationship between all the interior states 420 and the boundary states 410 (step 520). This step defines the probabilities of being in the interior states in terms of the boundary states 410. As a result, if the boundary states 410 are known, then the interior states 420 can easily be determined.

Having all of the interior states 420 defined in terms of the boundary states 410, the process solves for the probabilities of being in the boundary states 410 (step 530). Step 530 involves solving an equation with six unknowns. Because there are so few unknowns, the equation can be solved relatively fast.

Having determined the probabilities of being in the boundary states 410 and having defined the relationship between the boundary states 410 and the interior states 420, the process calculates the probabilities of being in the interior states 420 (step 540).

2. An Exemplary Process That Solves Two-Dimensional Birth-Death Equations

As set forth above with respect to equations (1) through (4), solving a two-dimensional birth-death equation involves solving the following two linear equations: e ^(T)ν=0 and e ^(T) 1=1. The variable e represents a vector, where each of its components represents the probability of being in a certain state, and ν represents the infinitesimal generator (i.e., the rate of transition from one state to another).

From equation (1),

ν1=0.

This is evident from the fact that if ν is singular, equation (2) contains a redundant equation. If the value of j is fixed in equation (2) and one row of the matrix ν is replaced by the normalization equation (3), then the resulting system of equations will typically have a unique solution. (A more precise condition for a unique solution is that ν has a rank of (n+1)×(m+1)−1 and that each column of ν is independent of 1. However, if equations (2) and (3) represent the ergodic equations of a connected state space then, from classical ergodic theory, there is a unique solution.)

If ν_(j) ⁺ is singular, a backwards recursive numerical solution to equation (2) is impossible and one is forced to identify an equivalent formulation of equation (2) for which the corresponding matrix is non-singular. To overcome this hurdle, suppose n* is defined by

[ν_(j) ⁺]_(ik)=0 for i=0, . . . , n* and all k and j.  (5)

The process defines x _(j) ^(T)=(x_(j,0), . . . , x_(j,n)) implicit in $\begin{matrix} {{\underset{\_}{e}}_{j,i} = \left\{ \begin{matrix} x_{j,i} & {{{{{for}\quad i} = 0},\ldots \quad,n^{*}}\quad} \\ x_{{j + 1},i} & {{{{for}\quad i} = {n^{*} + 1}},\ldots \quad,n} \end{matrix} \right.} & (6) \end{matrix}$

with

x_(0,i)=0 i=n* +1, . . . , n and x_(m+1,i)=0 i=0, . . . , n*.  (7)

Next the process defines the (n+1×n+1) dimensional matrices, N_(j) ⁺, N_(j) ⁰, and N_(j) ⁻ such that for all k

[N_(j) ⁻]_(ik)=0, [N_(j) ⁰]_(ik)=[ν_(j) ⁻]_(ik), and [N_(j) ⁺]_(ik)=[ν_(j) ⁰]_(ik) for i=1, . . . , n*  (8)

and

[N_(j+1) ⁻]_(ik)=[ν_(j) ^(−]) _(ik), [N_(j+1) ⁰]_(ik)=[ν_(j) ⁰]_(ik), and [N_(j+1) ⁺]_(ik)=[ν_(j) ⁺]_(ik) for i=n*+1, . . . , n.  (9)

Equation (2) is equivalent to

x _(j) ^(T)N_(j) ⁺=−x _(j+1) ^(T)N_(j+1) ⁰−χ_({j≠m}) x _(j+2) ^(T)N_(j+2) ⁻, j=m, . . . , 0  (10)

and hence, it will be this equation, and not equation (2) that will be solved.

Let X_(m+1) be an (n+1)×(n−n*) matrix of column vectors that spans all feasible values of x _(m+1) using equation (7), e.g., let

 [X_(m+1)]_(ip)=χ_({i=p+n*+1}) for i=0, . . . , n and p=0, . . . , n−n*−1  (11)

and assume that $\begin{matrix} {{x_{j,i} = {\sum\limits_{p = 0}^{n - n^{*} - 1}\quad {x_{{m + 1},{p + n^{*} + 1}}\left\lbrack X_{j} \right\rbrack}_{ip}}},{j = 0},\ldots \quad,{m + 1}} & (12) \end{matrix}$

for the unknown vector x _(m+1) where X_(j) is an (n+1)×(n−n*) matrix for j≠0 and an (n*+1)×(n−n*) matrix for j=0.

By combining equations (10), (11), (12), and the normalizing equation $\begin{matrix} {1 = {{\sum\limits_{j = 0}^{m}\quad {\sum\limits_{i = 0}^{n}\quad e_{j,i}}} = {{\sum\limits_{j = 0}^{m}\quad {\sum\limits_{i = 0}^{n^{*}}\quad x_{j,i}}} + {\sum\limits_{j = 0}^{m}\quad {\sum\limits_{i = {n^{*} + 1}}^{n}\quad x_{{j + 1},i}}}}}} & (13) \end{matrix}$

the process may recursively solve for X_(j) and then solve for x _(m+1), using equation (12) to find x _(j) for all j, and then using equation (6) to find e _(j) for all j.

a. Exemplary Process That Solves AX=B If A Is Tridiagonal and Non-Singular

A process that solves birth-death equations consistent with the present invention involves repetitively solving X^(T)A^(T)=B^(T) or

AX=B  (14)

having O (n (n−n*)) multiplication operations where A is an (n+1)×(n+1) non-singular tridiagonal matrix whose (i, k)^(th) component is a_(ik), X is an (n+1)×(n−n*) matrix whose (i,p)^(th) component is x_(i,p), and B is an (n+1)×(n−n*) matrix whose (i, p)^(th) component is b_(i,p). To more naturally accommodate applications, the indexing of the matrices start at 0 rather than 1. To implement the process, there is substantial memory savings if the structure of A is exploited by representing A using three vectors, a ⁺, a ⁰, a ⁻, whose i^(th) components are a_(i) ⁺=χ_(i<n)a_(i,i+1), a_(i) ⁰=a_(i,i), and a_(i) ⁻=χ_(i>0)a_(i,i−1).

A process consistent with the present invention assumes that x_(j,p)=c_(j,p)+d_(j)x_(i*,p) for block j=i*, . . . , i, and exploits the tridiagonal structure to find a self-consistency equation to solve for x_(i*,p). This process is solved in blocks because, otherwise, equations (15) and (16) below cannot be evaluated if a_(i,i+1)=a_(i) ⁺=0.

An exemplary process, consistent with the present invention, that solves AX=B when A is tridiagonal and non-singular consists of the following:

STEP 1: Set i*=0, d₀=1, and c_(0,p)=0 for p=0, . . . , n−n*−1.

STEP 2: For i=0, . . . , n:

IF a_(i) ⁺≠0 and i<n, then set $\begin{matrix} {{c_{{i + 1},p} = \frac{\begin{matrix} {b_{i,p} - {\chi_{({i = {{{i^{*}\&}i} > 0}})}a_{i^{*}}^{-}X_{{i^{*} - 1},p}} -} \\ {{\chi_{\{{i > i^{*}}\}}a_{i}^{-}c_{{i - 1},p}} - {a_{i}^{0}c_{i,p}}} \end{matrix}}{a_{i}^{+}}},{p = 0},\ldots \quad,{n - n^{*} - 1}} & (15) \end{matrix}$

and $\begin{matrix} {d_{i + 1} = {\frac{{{- \chi_{\{{i > i^{*}}\}}}a_{i}^{-}d_{i - 1}} - {a_{i}^{0}d_{i}}}{a_{i}^{+}}.}} & (16) \end{matrix}$

ELSE, for p=0, . . . , n−n*−1, set $\begin{matrix} {x_{j,p} = \left\{ \begin{matrix} \frac{\begin{matrix} {b_{i,p} - {\chi_{\{{i = {{{i^{*}\&}i} > 0}}\}}a_{i^{*}}^{-}x_{{i^{*} - 1},p}} -} \\ {{\chi_{\{{i > i^{*}}\}}a_{i}^{-}c_{{i - 1},p}} - {a_{i}^{0}c_{i,p}}} \end{matrix}}{{\chi_{\{{i > i^{*}}\}}a_{i}^{-}d_{i - 1}} - {a_{i}^{0}d_{i}}} & {{j = i^{*}}\quad} \\ {{c_{j,p} + {d_{j}x_{i^{*},p}}}\quad} & {{j = {i^{*} + 1}},\ldots \quad,i} \end{matrix} \right.} & (17) \end{matrix}$

and then set i=i+1, d_(i*)=1, and c_(i*p)=0 for p=0, . . . , n−n*−1.

b. Exemplary Process that Solves Two-Dimensional Birth-Death Equations

Using the process that solves AX=B, an exemplary process consistent with the present invention that solves a two-dimensional (row-continuous) birth-death model can be described. The general approach is to repetitively solve equations (10) and (13), a variation of equations (2) and (3), using the above-described process (i.e., the process that solves X^(T)A^(T)=B^(T)) based on n−n* different choices for x _(m+1) and then to recognize that the solution to equations (2) and (3) is an appropriate linear combination of these solutions (i.e., it follows equation (12)).

FIGS. 6A and 6B illustrate an exemplary process consistent with the present invention that solves two-dimensional birth-death equations. The exemplary process consists of the following:

STEP 610 (FIG. 6A): For i=0, . . . , n, and p=0, 1, . . . , n−n*−1 define

X_(m+1) as [X_(m+1)]_(i,p)=χ_({i=p+n*+1})

For j=m, . . . , 1:

STEP 620: Find X_(j) by solving

X_(j) ^(T)N_(j) ⁺=−X_(j+1) ^(T)N_(j+1) ⁰−χ_({j≠m})X_(j+2) ^(T)N_(j+2) ⁻  (18)

where N_(j) ⁺, N_(j+1) ⁰, and N_(j+2) ⁻ are tridiagonal matrices defined in equations (8) to (10). Equation (18) is of the form X^(T)A^(T)=B^(T), where A^(T) is a tridiagonal matrix. As such, step 620 may be solved using, for example, the algorithm described above that solves equations of this form (i.e., equations of the form X^(T)A^(T)=B^(T)). Other comparable (or better) algorithms may alternatively be used to solve step 620.

STEP 630: Find X₀ by solving

X₀ ^(T){circumflex over (N)}₀ ⁺=B  (19)

where {circumflex over (N)}₀ ⁺ and B are (n*+1)×(n*+1) non-singular tridiagonal matrices such that for k=0, . . . , n*, and p=0, . . . n*, [{circumflex over (N)}₀ ⁺]_(p,k)=[N₀ ⁺]_(p,k) and [B]_(p,k)=[−X₁ ^(T)N₁ ⁰−X₂ ^(T)N₂ ⁻]_(p,k,). Equation (19) is of the form X^(T)A^(T)=B^(T), where A^(T) is a tridiagonal matrix. As such, step 630 may be solved using, for example, the algorithm described above that solves equations of this form (i.e., equations of the form X^(T)A^(T)=B^(T)). Other comparable (or better) algorithms may alternatively be used to solve step 630.

STEP 640 (FIG. 6B): Find x _(m+1) by solving $\begin{matrix} {{{\sum\limits_{p = 0}^{n - n^{*} - 1}\quad {x_{{m + 1},{p + n^{*} + 1}}\left\lbrack {{X_{0}^{T}N_{0}^{+}} + {X_{1}^{T}N_{1}^{0}} + {X_{2}^{T}N_{2}^{-}}} \right\rbrack}_{p,k}} = 0}{{k = {n^{*} + 1}},\ldots \quad,n}} & (20) \end{matrix}$

and $\begin{matrix} {{\sum\limits_{p = 0}^{n - n^{*} - 1}\quad \left( {{\sum\limits_{i = 0}^{n^{*}}\quad {x_{{m + 1},{p + n^{*} + 1}}\left\lbrack X_{0} \right\rbrack}_{p,i}} + {\sum\limits_{j = 1}^{m}\quad {\sum\limits_{i = 0}^{n}\quad {x_{{m + 1},{p + n^{*} + 1}}\left\lbrack X_{j} \right\rbrack}_{p,i}}} + {\sum\limits_{i = {n^{*} + 1}}^{n}\quad {x_{{m + 1},{p + n^{*} + 1}}\left\lbrack X_{m + 1} \right\rbrack}_{p,i}}} \right)} = 1.} & (21) \end{matrix}$

The process solves step 640 by using Gaussian elimination or some other state of the art technique.

STEP 650: For j=0, . . . , m solve x _(j) using equation (12) and then e _(j) using equation (6).

For all values of j, matrices N_(j) ⁺ and {circumflex over (N)}₀ ⁺ will be tridiagonal if ν_(j) and ν_(j−1) are tridiagonal and, therefore, the exemplary process described above that solves AX=B is applicable to STEP 620 and STEP 630. Equations (20) and (21) represent n−n*+1 equations and n−n* unknowns. Hence, one of the equations in equation (20) can be discarded without loss of generality. Moreover, since x_(m+1,p)=0, p=0, . . . , n*, the summation in equation (21) can start at i=n*+1 without loss of generality.

From equation (8), [N_(j) ⁻]_(ik)=0 for i=1, . . . , n*. Therefore, the pk^(th) component of the last term of equation (18) is also equal to $\sum\limits_{i = {n^{*} + 1}}^{n}\quad {{\left\lbrack X_{2}^{T} \right\rbrack_{pi}\left\lbrack N_{2}^{-} \right\rbrack}_{ik}.}$

Simiarly, the second term pf [B]_(pk) is ${- \chi_{\{{j \neq m}\}}}{\sum\limits_{i = {n^{*} + 1}}^{n}\quad {{\left\lbrack X_{j + 2}^{T} \right\rbrack_{pi}\left\lbrack N_{j + 2}^{-} \right\rbrack}_{ik}.}}$

Each iteration of STEP 630 includes multiplication operations on the order of (n(n−n*)). Since there are m total iterations in STEP 630, STEP 630 includes multiplication operations on the order of (mn(n−n*)). STEP 640 involves multiplication operations on the order of ((n−n*)³). Overall, the process, consistent with the present invention, that solves two-dimensional birth-death equations has a maximum number of multiplication operations on the order of (mn²). In marked contrast, Gaussian elimination requires on the order of (m³n³) multiplication operations and a block Gaussian algorithm requires (mn³). It is evident that a process, consistent with the present invention, results in substantial savings of time when the values of m and/or n are large.

The following illustrates how an exemplary telecommunications performance issue can be modeled using a two-dimensional birth-death equation. Once modeled, the above-described process that solves two-dimensional birth-death equations can be used to quickly and accurately analyze the performance issue.

Consider an n channel system that has an arrival rate of λ, a service rate of μ, and a hazard rate of redialing of η. Let i be the number of calls in service and j the number of calls that have been blocked one or more times and may redial. Let p be the probability that a blocked call will redial. Finally, assume that the maximum number of calls that have been blocked one or more times and may redial is m.

The balance equations at (i, j) for this model can be put in the form of equations (2) and (3) as follows:

For j=0, 1, . . . , m, $\left\lbrack v_{j}^{-} \right\rbrack_{ik} = \left\{ {{\begin{matrix} {{j\quad \eta}\quad} & {{{if}\quad k} = {{i + {1\quad {and}\quad i}} < n}} \\ {\left( {1 - p} \right)j\quad \eta} & {{{{if}\quad i} = {k = n}}\quad} \\ {0\quad} & {{otherwise}\quad} \end{matrix}\begin{matrix} \left\lbrack v_{j}^{0} \right\rbrack_{ik} \end{matrix}} = {{\begin{matrix} \left\{ \begin{matrix} {{i\quad \mu}\quad} & {{{{if}\quad k} = {i - 1}}\quad} \\ {{{{- i}\quad \mu} - \lambda - {j\quad \eta}}\quad} & {{{{if}\quad k} = {{i\quad {and}\quad i}\quad < n}}\quad} \\ {{{- i}\quad \mu} - {p\quad {\lambda\chi}_{\{{j \neq m}\}}} - {\left( {1 - p} \right)j\quad \eta}} & {{{{if}\quad k} = {i = n}}\quad} \\ {\lambda \quad} & {{{if}\quad k} = {{i + {1\quad {and}\quad i}} < n}} \\ {0\quad} & {{otherwise}\quad} \end{matrix} \right. \end{matrix}{{and}\left\lbrack v_{j}^{+} \right\rbrack}_{ik}} = \left\{ {\begin{matrix} {p\quad {\lambda\chi}_{\{{j \neq m}\}}} & {{{if}\quad i} = {k = n}} \\ {0\quad} & {{otherwise}\quad} \end{matrix}.} \right.}} \right.$

Note that this model satisfies equation (1) and, from equation (5), n*=n−1.

Let $E_{i} = {\sum\limits_{j = 0}^{m}\quad {\underset{\_}{e}}_{j,i}}$

and ${\overset{\_}{E}}_{i} = {\sum\limits_{j = 0}^{m}\quad {j{\underset{\_}{e}}_{j,i}}}$

then λE_(i) and η{overscore (E)}_(i) are, respectively, the rate of external traffic and redial (i.e., internal) traffic that arrives while i calls are in service. Similarly, pλ(E_(n)−e _(m,n)) and pη{overscore (E)}_(n) are, respectively, the rate of external and internal traffic that arrives, is blocked, that has room to join the redial pool, and so chooses. Therefore, using these expressions, one can show that the probability of getting service after the first attempt is 1 −E_(n), the probability of getting service, possibly after redialing one or more times, is the total rate of successful calls divided by the total rate of external calls, i.e., ${\frac{\sum\limits_{i = 0}^{n - 1}\quad \left( {{\lambda \quad E_{i}} + {\eta {\overset{\_}{E}}_{i}}} \right)}{\lambda} = {1 - E_{n} + {\frac{\eta}{\lambda}{\sum\limits_{i = 0}^{n - 1}\quad {\overset{\_}{E}}_{i}}}}},$

the average number of attempts of each successful call is the total rate of call attempts that stay in the system divided by the rate of calls that are successful, i.e., ${{\overset{\_}{N}}_{s} = \frac{{p\quad {\lambda \left( {E_{n} - {\underset{\_}{e}}_{m,n}} \right)}} + {p\quad \eta {\overset{\_}{E}}_{n}} + {\sum\limits_{i = 0}^{n - 1}\quad \left( {{\lambda \quad E_{i}} + {\eta {\overset{\_}{E}}_{i}}} \right)}}{\sum\limits_{i = 0}^{n - 1}\quad \left( {{\lambda \quad E_{i}} + {\eta {\overset{\_}{E}}_{i}}} \right)}},$

and the average time to wait before a call is successful is $\overset{\_}{W} = {\frac{{\overset{\_}{N}}_{s} - 1}{\eta} = {\frac{{p\quad {\lambda \left( {E_{n} - {\underset{\_}{e}}_{m,n}} \right)}} + {p\quad \eta {\overset{\_}{E}}_{n}}}{\eta {\sum\limits_{i = 0}^{n - 1}\quad \left( {{\lambda \quad E_{i}} + {\eta {\overset{\_}{E}}_{i}}} \right)}}.}}$

3. Exemplary Process that Solves Multi-Dimensional Birth-Death Equations

While two-dimensional birth-death equations may be used to analyze a wide variety of performance issues, there are times when two dimensions are not adequate. In such instances, a higher-dimensional birth-death equation is needed. This section provides an exemplary process for solving multi-dimensional birth-death equations.

Letting j=(j₁, . . . , j_(H)) and s=(s₁, . . . , s_(H)), the process defines the matrix ν _(j) ^(s) such that the infintesimal generator for the probability flow from (j₁, . . . , j_(H), i) to (j₁+s₁, . . . , j_(H)+s_(H), k) is [ν _(j) ^(s]) _(i,k) where s_(i) is equal to −1, 0, or 1. Note that “1” and “−1” are used instead of “+” and “−.” The variable H hereinafter represents the number of dimensions in the system minus one. For example, in a three-dimensional system, H would equal 2.

To simplify the presentation of the analysis for H>1, the process defines the sets

J={j: 0≦j_(h)≦n_(h) for all h},

S₀={s: 0≦s_(h) for all h≠1 and s_(h)=1 for one or more h},  (22)

M={m: m_(h)=n_(h)+1 for at least one h and n_(h)+1≧m_(h)≧1 for all h},

and

S(j)={s: max(−1, j_(h)−n_(h))≦s_(h)≦min(1, j_(h))}, jεJ

(so that sεS(j) implies that −1≦j_(h)≦1 and 0≦j_(h)−s_(h)≦n_(k) for all h), where n_(h) represents the largest value of the state in the h dimension.

As a generalization of equation (1), $\begin{matrix} {{\sum\limits_{\underset{\_}{s} \in {S{(\underset{\_}{j})}}}{v_{\underset{\_}{j}}^{\underset{\_}{s}}\underset{\_}{1}}} = {{\underset{\_}{0}\quad {for}\quad {all}\quad \underset{\_}{j}} \in J}} & (23) \end{matrix}$

Equation (5) can be generalized by defining n* such that

[ν _(j) ^(s) ]_(i,k)=0, i=0, . . . , n* s εS₀, all k and all jεJ.  (24)

Equations (8) and (9) can be generalized by defining N _(j) ⁺ as an (n+1)×(n+1) matrix such that $\begin{matrix} {\left\lbrack N_{\underset{\_}{j}}^{+} \right\rbrack = \left\{ \begin{matrix} \left( \left\lbrack v_{\underset{\_}{j}}^{\underset{\_}{0}} \right\rbrack \right)_{i,k} & {{{{if}\quad i} = 0},\ldots \quad,n^{*}} \\ \left( \left\lbrack v_{\underset{\_}{j} - 1}^{\underset{\_}{1}} \right\rbrack \right)_{i,k} & {{{{if}\quad i} = {n^{*} + 1}},\ldots \quad,n} \end{matrix} \right.} & (25) \end{matrix}$

and {circumflex over (N)} _(j) ⁺ as an n*+1×n*+1 matrix such that

[{circumflex over (N)} _(j) ⁺]_(ik)=[ν _(j) ⁰ ]_(ik) for i=0, . . . , n* and k=0, . . . , n*.  (26)

To generalize equation (6), the process defines $\begin{matrix} {\left( \left\lbrack {\underset{\_}{e}}_{\underset{\_}{j}} \right\rbrack \right)_{i} = \left\{ \begin{matrix} {{R\left( \underset{\_}{j} \right)}\left\lbrack {\underset{\_}{x}}_{\underset{\_}{j}} \right\rbrack}_{i} & {{{{if}\quad i} = 0},\ldots \quad,n^{*}} \\ {{R\left( \underset{\_}{j} \right)}\left\lbrack {\underset{\_}{x}}_{\underset{\_}{j} + \underset{\_}{1}} \right\rbrack}_{i} & {{{{if}\quad i} = {n^{*} + 1}},\ldots \quad,n} \end{matrix} \right.} & (27) \end{matrix}$

where $\begin{matrix} {{R\left( \underset{\_}{j} \right)} = {\sum\limits_{h = 1}^{H}{\sum\limits_{j = 1}^{j_{h}}r_{j}^{(h)}}}} & (28) \end{matrix}$

where, for example, $\begin{matrix} {r_{j}^{(h)} = \frac{\sum\limits_{\{{{\underset{\_}{j}:{\underset{\_}{j} \in {J\quad {but}\quad j_{h}}}} = j}\}}{\sum\limits_{\{{{\underset{\_}{s}:{\underset{\_}{s} \in {{S{(\underset{\_}{j})}}\quad {but}\quad s_{h}}}} = 1}\}}{{\underset{\_}{1}}^{T}v_{i}^{\underset{\_}{s}}\underset{\_}{1}}}}{\sum\limits_{\{{{\underset{\_}{j}:{\underset{\_}{j} \in {J\quad {but}\quad j_{h}}}} = {j \div 1}}\}}{\sum\limits_{\{{{\underset{\_}{s}:{\underset{\_}{s} \in {{S{(\underset{\_}{j})}}\quad {but}\quad s_{h}}}} = {- 1}}\}}{{\underset{\_}{1}}^{T}v_{i}^{\underset{\_}{s}}\underset{\_}{1}}}}} & (29) \end{matrix}$

and x _(j) is an (n+1) dimensional vector if j_(h)≠0 for all h and is otherwise an (n*+1) dimensional vector. The variable R(j) represents a scaling factor. It is possible to execute the exemplary process that solves multi-dimensional birth-death equations without using a scaling factor; however, in order to improve numerical stability, a scaling factor may be used. Alternative techniques for determining a scaling factor exist and may be substituted for equations (26) to (29).

From the definition of M and equation (27) if mεM and i=0, . . . , n*, [e _(m)]_(i)=[x _(m]) _(i) has at least one component m_(h)>n_(h). Since such values of e _(j) are not of interest, they can be set to zero without loss of generalization. Similarly, if the set M permits the inclusion of letting m_(h)=0 in M then, from equation (27), for i=n*+1, . . . , n, [e _(m−)1]_(i)=[x _(m) ]_(i) would have a component which is −1 and, again, is not of interest. Hence, the possibility of m_(h)=0 is excluded from the definition of M.

In three dimensions, i.e., H=2, equation (2) generalizes to the steady state ergodic equation that reflects that the probability flow into j equals the probability flow out of j and is, for j₁=0, . . . , n₁ and j₂=0, . . . , n₂

χ_({j) ₁ _(≠0 and j) ₂ _(≠0}) e _(j) ₁ _(−1,j) ₂ ⁻¹ ^(T ν) _(j) ₁ _(−1,j) ₂ ⁻¹ ^(1,1)+

χ_({j) ₁ _(≠0}) e _(j) ₁ _(−1,j) ₂ ^(T)ν_(j) ₁ _(−1,j) ₂ ^(1,0)+χ_({j) ₂ _(≠n) ₂ _(})χ_({j) ₁ _(≠0}) e _(j) ₁ _(−1,j) ₂ ₊₁ ^(T)

ν_(j) ₁ _(−1,j) ₂ ₊₁ ^(1,−1)+χ_({j) ₂ _(≠0}) e _(j) ₁ _(,j) ₂ ⁻¹ ^(T)ν_(j) ₁ _(,j) ₂ ⁻¹ ^(0,1) e _(j) ₁ _(,j) ₂ ^(T)ν_(j) ₁ _(,j) ₂ ^(0,0)+χ_({j) ₂ _(≠n) ₂ _(})

e _(j) ₁ _(,j) ₂ ₊₁ ^(T)ν_(j) ₁ _(,j) ₂ ₊₁ ^(0,−1)+χ_({j) ₁ _(=n) ₁ _(})(χ_({j) ₂ _(≠0}) e _(j) ₁ _(+1,j) ₂ ⁻¹ ^(T)

ν_(j) ₁ _(+1,j) ₂ ⁻¹ ^(−1,1)+e _(j) ₁ _(+1,j) ₂ ^(T)ν_(j) ₁ _(+1,j) ₂ ^(−1,0)+χ_({j) ₂ _(≠n) ₂ _(})

e _(j) ₁ _(+1,j) ₂ ₊₁ ^(T)ν_(j) ₁ _(+1,j) ₂ ₊₁ ^(−1,−1))=0.

where n₂ is the largest value of the second dimension. As described above, when the condition of the subscript associated with χ is true, the value of χ equals 1 and equals 0 otherwise.

For any dimension, the equivalent expression can be concisely expressed as $\begin{matrix} {{{\sum\limits_{\underset{\_}{s} \in {S{(\underset{\_}{j})}}}{{\underset{\_}{e}}_{\underset{\_}{j} - \underset{\_}{s}}^{T}v_{\underset{\_}{j} - \underset{\_}{s}}^{\underset{\_}{s}}}} = \underset{\_}{0}},{{{for}\quad {all}\quad \underset{\_}{j}} \in {J.}}} & (30) \end{matrix}$

Hence, using equation (27) ${\sum\limits_{\underset{\_}{s} \in {S{(\underset{\_}{j})}}}{{R\left( {\underset{\_}{j} - \underset{\_}{s}} \right)}\left( {{\sum\limits_{i = 0}^{n^{*}}{\left\lbrack {\underset{\_}{x}}_{\underset{\_}{j} - \underset{\_}{s}} \right\rbrack_{i}\left\lbrack v_{\underset{\_}{j} - \underset{\_}{s}}^{\underset{\_}{s}} \right\rbrack}_{i,k}} + {\sum\limits_{i = {n^{*} + 1}}^{n}{\left\lbrack {\underset{\_}{x}}_{\underset{\_}{j} - \underset{\_}{s} + \underset{\_}{1}} \right\rbrack_{i}\left\lbrack v_{\underset{\_}{j} - \underset{\_}{s}}^{\underset{\_}{s}} \right\rbrack}_{i,k}}} \right)}} = 0$ ${{for}\quad {all}\quad \underset{\_}{j}} \in J$

where n* is defined in equation (24).

After dividing both sides by R(j), using equations (24) and (25), and rearranging the terms the following is obtained, for all jεJ, $\begin{matrix} {\left( \left\lbrack {{\underset{\_}{x}}_{\underset{\_}{j}}^{T}N_{\underset{\_}{j}}^{+}} \right\rbrack \right)_{k} = {{- {\sum\limits_{\underset{{\underset{\_}{s} \neq \underset{\_}{0}},{\underset{\_}{s} \notin S_{0}}}{\underset{\_}{s} \in {S{(\underset{\_}{j})}}}}{\frac{R\left( {\underset{\_}{j} - \underset{\_}{s}} \right)}{R\left( \underset{\_}{j} \right)}{\sum\limits_{i = 0}^{n^{*}}{\left( \left\lbrack {\underset{\_}{x}}_{\underset{\_}{j} - \underset{\_}{s}} \right\rbrack \right)_{i}\left\lbrack v_{\underset{\_}{j} - \underset{\_}{s}}^{\underset{\_}{s}} \right\rbrack}_{i,k}}}}} - {\sum\limits_{\underset{\underset{\_}{s} \neq \underset{\_}{1}}{\underset{\_}{s} \in {S{(\underset{\_}{j})}}}}{\frac{R\left( {\underset{\_}{j} - \underset{\_}{s}} \right)}{R\left( \underset{\_}{j} \right)}{\sum\limits_{i = {n^{*} + 1}}^{n}{{\left( \left\lbrack {\underset{\_}{x}}_{\underset{\_}{j} - \underset{\_}{s} + \underset{\_}{1}} \right\rbrack \right)_{i}\left\lbrack v_{\underset{\_}{j} - \underset{\_}{s}}^{\underset{\_}{s}} \right\rbrack}_{i,k}.}}}}}} & (31) \end{matrix}$

The normalization equation along with equation (27) provides $\begin{matrix} {1 = {{\sum\limits_{\underset{\_}{j} \in J}{\sum\limits_{i = 0}^{n}\left( \left\lbrack {\underset{\_}{e}}_{\underset{\_}{j}} \right\rbrack \right)_{i}}} = {\sum\limits_{\underset{\_}{j} \in J}{\left\lbrack {{R\left( \underset{\_}{j} \right)}\left( {{\sum\limits_{i = 0}^{n^{*}}\left( \left\lbrack {\underset{\_}{x}}_{\underset{\_}{j}} \right\rbrack \right)_{i}} + {\sum\limits_{i = 0}^{n^{*}}\left( \left\lbrack {\underset{\_}{x}}_{\underset{\_}{j} + \underset{\_}{1}} \right\rbrack \right)_{i}}} \right)} \right\rbrack.}}}} & (32) \end{matrix}$

Rather than directly solve for x _(j) , this process treats the p+n*+1 components of x _(m) as a basis for mεM and p=0, . . . , n−n*−1, and solves for the coefficients that relate the x _(m) 's to x _(j) 's .

Specifically, the process consistent with the present invention assumes for all j $\begin{matrix} {\left( \left\lbrack {\underset{\_}{x}}_{\underset{\_}{j}} \right\rbrack \right)_{i} = {\sum\limits_{\underset{\_}{m} \in M}{\sum\limits_{p = 0}^{n - n^{*} - 1}{\left( \left\lbrack X_{\underset{\_}{j}}^{\underset{\_}{m}} \right\rbrack \right)_{i,p}\left\lbrack {\underset{\_}{x}}_{\underset{\_}{m}} \right\rbrack}_{p + n^{*} + 1}}}} & (33) \end{matrix}$

where X _(j) ^(m) is an (n+1)×(n−n*) matrix if j_(h)≠0 for all h, and an (n*+1)×(n−n*) matrix if j_(h)=0 for some h and then solves for the X _(j) ^(m) 's.

For notational clarity, motivated by equation (25), the (n−n*)×(n+1) matrix B _(j) ^(m) be defined such that for p=0, . . . , n−n*−1 and k=0, . . . , n $\begin{matrix} {\left( \left\lbrack B_{\underset{\_}{j}}^{\underset{\_}{m}} \right\rbrack \right)_{p,k} = {{- {\sum\limits_{\underset{{\underset{\_}{s} \neq \underset{\_}{0}},{\underset{\_}{s} \notin S_{0}}}{\underset{\_}{s} \in {S{(\underset{\_}{j})}}}}{\sum\limits_{i = 0}^{n^{*}}{{\frac{R\left( {\underset{\_}{j} - \underset{\_}{s}} \right)}{R\left( \underset{\_}{j} \right)}\left\lbrack X_{\underset{\_}{j} - \underset{\_}{s}}^{\underset{\_}{m}} \right\rbrack}_{i,p}\left\lbrack v_{\underset{\_}{j} - \underset{\_}{s}}^{\underset{\_}{s}} \right\rbrack}_{i,k}}}} - {\sum\limits_{\underset{\underset{\_}{s} \neq \underset{\_}{1}}{\underset{\_}{s} \in {S{(\underset{\_}{j})}}}}{\sum\limits_{i = {n^{*} + 1}}^{n}{{\frac{R\left( {\underset{\_}{j} - \underset{\_}{s}} \right)}{R\left( \underset{\_}{j} \right)}\left\lbrack X_{\underset{\_}{j} - \underset{\_}{s} + \underset{\_}{1}}^{\underset{\_}{m}} \right\rbrack}_{i,p}\left\lbrack v_{\underset{\_}{j} - \underset{\_}{s}}^{\underset{\_}{s}} \right\rbrack}_{i,k}}}}} & (34) \end{matrix}$

Assume {circumflex over (B)} _(j) ^(m) is an n−n*×n*+1 matrix defined by

[{circumflex over (B)} _(j) ^(m) ]_(pk)=[B _(j) ^(m) ]_(pk) for p=0, . . . , n−n*−1 and k=0, . . . , n*,  (35)

$\begin{matrix} {{{C\left\lbrack {\left( {\underset{\_}{j},k} \right),\left( {\underset{\_}{m},p} \right)} \right\rbrack} = {{\sum\limits_{i = 0}^{n^{*}}{\left( \left\lbrack X_{\underset{\_}{j}}^{\underset{\_}{m}} \right\rbrack \right)_{i,p}\left\lbrack N_{\underset{\_}{j}}^{+} \right\rbrack}_{i,k}} - {\left\lbrack B_{\underset{\_}{j}}^{\underset{\_}{m}} \right\rbrack p}}},k} & (36) \end{matrix}$

and $\begin{matrix} {{\underset{\_}{c}\left\lbrack {\underset{\_}{m},p} \right\rbrack} = {\sum\limits_{\underset{\_}{j} \in J}{\left\lbrack {{R\left( \underset{\_}{j} \right)}\left( {{\sum\limits_{i = 0}^{n^{*}}\left( \left\lbrack X_{\underset{\_}{j}}^{\underset{\_}{m}} \right\rbrack \right)_{i,p}} + {\sum\limits_{i = {n^{*} + 1}}^{n}\left( \left\lbrack X_{\underset{\_}{j} + \underset{\_}{1}}^{\underset{\_}{m}} \right\rbrack \right)_{i,p}}} \right)} \right\rbrack.}}} & (37) \end{matrix}$

FIGS. 7A and 7B illustrate an exemplary process consistent with the present invention that solves multi-dimensional birth-death equations. The exemplary process consists of the following:

STEP 710(FIG. 7A): Initialization: For all mεM, all jεM, p=0, . . . , n−n*−1, and all i (whose range depends of j) set $\begin{matrix} {\left( \left\lbrack X_{\underset{\_}{j}}^{\underset{\_}{m}} \right\rbrack \right)_{i,p} = \left\{ \begin{matrix} 1 & {i = {{p + n^{*} + {1\quad {and}\quad \underset{\_}{j}}} = \underset{\_}{m}}} \\ 0 & {else} \end{matrix} \right.} & (38) \end{matrix}$

STEP 720: Solving for X

For j_(H)=n_(H), . . . . , 0:

For j_(H−1)=n_(H−1), . . . , 0:

. . .

For j₁=n₁, . . . , 0:

For mεM:

Let j=(j₁, . . . j_(H))^(T).

Solve for X _(j) ^(m) in the equation

(X _(j) ^(m) )^(T) N _(j) ⁺=B _(j) ^(m) if j_(h)≠0 for all h  (39)

or

(X _(j) ^(m) )^(T){circumflex over (N)} _(j) ³⁰ ={circumflex over (B)} _(j) ^(m) if j_(h)=0 for some h  (40)

where B _(j) ^(m) , {circumflex over (B)} _(j) ^(m) , N _(j) ⁺, and {circumflex over (N)} _(j) ⁺ are defined in equations (34), (35), (25), and (26), respectively. Equations (39) and (40) are of the form X^(T)A^(T)=B^(T). As such, these equations may be solved using the process described above with respect to equations (15) to (17) or some other comparable (or better) process. Because of the tridiagonal structure of N _(j) ⁺ and {circumflex over (N)} _(j) ⁺ these equations can be solved very quickly.

STEP 730(FIG. 7B): Solving for x: Solve for [x _(m) ]_(p+n*+1) for mεM and p=0, . . . , n−n*−1 from the self-consistency equations $\begin{matrix} {{\sum\limits_{\underset{\_}{m} \in M}{\sum\limits_{p = 0}^{n - n^{*} - 1}{\left( \left\lbrack x_{\underset{\_}{m}} \right\rbrack \right)_{p + n^{*} + 1}{C\left\lbrack {\left( {\underset{\_}{j},k} \right),\left( {\underset{\_}{m},p} \right)} \right\rbrack}}}} = 0} & (41) \end{matrix}$

for all jεJ with j_(h)=0 for some h and k=n*+1, . . . , n but not j=0 and k=n (as this is a redundant equation) where C is defined in equation (36), and $\begin{matrix} {{\sum\limits_{\underset{\_}{m} \in M}{\sum\limits_{p = 0}^{n - n^{*} - 1}{\left( \left\lbrack x_{\underset{\_}{m}} \right\rbrack \right)_{p + n^{*} + 1}{\underset{\_}{c}\left\lbrack {\underset{\_}{m},p} \right\rbrack}}}} = 1} & (42) \end{matrix}$

where c is defined in equation (37). Equations (41) and (42) may be solved using Gaussian elimination or some other comparable (or better) technique.

STEP 740: Completing the computations:

Solve for x _(j) using equation (33) for j∉M and for e _(j) using equation (27) for jεJ.

Similar to the two-dimensional case, the process that solves multi-dimensional birth-death equations in a manner consistent with the present invention drastically reduces the number of multiplication operations over conventional techniques. This process affords system designers the ability to model and analyze complex issues quickly and easily. As such, better engineering of telecommunication systems, more efficient use of resources, and a reduction in the amount of time for solving multi-dimensional birth-death equations can be achieved.

CONCLUSION

Systems and methods consistent with the present invention provide a mechanism by which performance issues of a wireless communication system may be quickly and accurately analyzed. A multi-dimensional birth-death model is configured to address a performance issue. A first group of states from the multi-dimensional birth-death model is carefully selected and a relationship determined between the non-selected states and this first group. Thereafter, a processor calculates the probabilities of the first group of states. Once calculated, the processor calculates the probabilities of the remaining states using the relationship between the non-selected states and the first group of states. The processor solves the multi-dimensional birth-death model based on the calculated states of the first and non-selected groups of states.

The foregoing description of exemplary embodiments of the present invention provides illustration and description, but is not intended to be exhaustive or to limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. For example, while the process that solves multi-dimensional birth-death equations, consistent with the present invention, was described as being used to analyze a performance issue associated with a wireless communication system, one skilled in the art will appreciate that this technique is equally applicable to any arena (e.g., image processing, speech processing, etc.) where multi-dimensional birth-death equations may be used.

The scope of the invention is defined by the following claims and their equivalents. 

What is claimed is:
 1. A computer-executable method that solves a multi-dimensional birth-death model, having a plurality of states representing modes of a system, for analyzing a performance factor associated with the system, said method comprising: selecting a first group of states and a second group of states from said plurality of states; determining a relationship between the second group of states and the first group of states; determining a probability of being in each of the first group of states; determining a probability of being in each of the second group of states based on the relationship and the determined probabilities of the first group of states; and solving the multi-dimensional birth-death model using the determined probabilities of the first and second groups of states to analyze the performance factor associated with the system.
 2. The method of claim 1 wherein the selecting step is performed in a specific way so as to exploit a tridiagonal structure of the model.
 3. An apparatus that solves a multi-dimensional birth-death model, having a plurality of states representing modes of a system, to analyze a performance factor associated with the system, said apparatus comprising: means for selecting a first group of states and a second group of states; means for determining a relationship between the second group of states and the first group of states; means for determining a probability of being in each of the first group of states; means for determining a probability of being in each of the second group of states based on the relationship and the determined probabilities of the first group of states; and means for solving the multi-dimensional birth-death model using the determined probabilities of the first and second groups of states to analyze the performance factor associated with the system.
 4. An apparatus that solves a multi-dimensional birth-death equation in order to analyze a performance factor associated with a system, said apparatus comprising: a memory that stores information representing the multi-dimensional birth-death equation, the equation having a plurality of states; and a processing unit that selects a first group of the states and a second group of the states, that determines a relationship of the second group of states to the first group of states, that calculates a probability of being in each of the first group of states, and that calculates a probability of being in each of the second group of states based on the relationship and the calculated probabilities of the first group of states, and that solves the multi-dimensional birth-death equation using the determined probabilities of the first and second groups of states to analyze the performance factor associated with the system.
 5. The apparatus of claim 4 wherein the system is a telecommunications network.
 6. The system of claim 4 wherein the processing unit selects the first group of states so as to exploit a tridiagonal structure of the multi-dimensional birth-death equation.
 7. A method that analyzes a performance factor associated with a network including a computer, said method, performed by said computer, comprising: representing the performance factor with a multi-dimensional birth-death model; identifying first and second groups of states in the multi-dimensional birth-death model; determining a relationship between the second group of states and the first group of states; determining a probability of being in each of the first group of states; and determining a probability of being in each of the second group of states using the relationship and the determined probabilities of the first group of states, the determined probabilities of the first and second states being used by the computer to analyze the performance factor associated with the network.
 8. A computer-readable medium containing instructions for controlling at least one processor to perform a method that analyzes a performance factor associated with a system by solving a multi-dimensional birth-death equation having a plurality of states, each state representing a mode that the system may be in at a particular instance, the method comprising: selecting a first group of states and a second group of states from the plurality of states; determining a relationship between the second group of states and the first group of states; determining a probability of being in each of the first group of states; determining a probability of being in each of the second group of states based on the relationship and the determined probabilities of the first group of states; solving the multi-dimensional birth-death equation using the determined probabilities of the first and second groups of states, the solution being used by the processor to analyze the performance factor associated with the system. 